# 字符串的定义
# print('hello world')
# print("hello world")
# print('''hello world''')
# print("""hello world""")


# my_list = [1, 2, 3, 4]
# my_str = str(my_list)
# print(my_str)
# print(type(my_str))

# 字符串的相关方法

# 1.查找
#   count  计数方法  可以用于查找单个字符和 子字符串
# my_str = "hello world ll"
# counter = my_str.count('lle')
# print('lle :', counter)
#  find /index


# find默认从左往右查找  rfind 返回从右往左的查找结果     如果未找到  返回 -1
# L_idx = my_str.find("ll")
# print("L Index ll:", L_idx)
# R_idx = my_str.rfind("ll")
# print("R Index ll:", R_idx)

# index 和 rindex 和find、rfind行为类似  未找到会报错


# 2.判断

# my_str = "10-helloworld.jpg"
# isalpha 判断是否都是字母
# print(my_str.isalpha())
# isalnum 判断是否都是字母+数组
# print(my_str.isalnum())

# 重要 ！  结尾开头判断
# print("is end with png:", my_str.endswith(".png"))
# print("is start with 10-:", my_str.startswith("10-"))


# 3.转换
my_str = "      my Name is Bob!     "
# replace   不会改变原字符串  而是返回一个新的字符串
# new_str = my_str.replace("bob", "Kath")
# my_str = my_str.replace("bob", "Kath")
# print(my_str)
# print(new_str)

# upper/lower  大写  小写
# my_str = my_str.lower()
# print(my_str)
# swapcase 大小写翻转
# my_str = my_str.swapcase()
# print(my_str)
# capitalize 标题化
# my_str = my_str.capitalize()
# print(my_str)
# strip 首尾的空格删除   lstrip 只删除左边的空格
# my_str_list = list(my_str)
# print(my_str_list)

# my_str = my_str.lstrip()

# my_str_list = list(my_str)
# print(my_str_list)
# 

# 4.分割
# my_str = "hello-world!-----abco-wabc"

# split 对查找到的所有o-w进行替换
# res = my_str.split('o-w')
# print(res)

# 5.编解码

# ASCII编码:
# ASCII 使用一个字节表示字符
# 一个字节为8bit 一个bit上有0-1两种状态
# 因此一个字节能表示的最大的整数就是 2^8-1=255 也即能够表示255中不同的状态
# 而ASCII编码，0-127用来表示大小写英文字母、数字和一些符号，该编码表被称为ASCII编码
# 比如大写字母A的编码是65，小写字母a的编码是91  数字0 的编码为 48

# unicode:
# 考虑到 不通非英语国家可能出现超过 ascii编码数量上限，因此用多个字节表示字符的方法解决
# 这种编码方式称为 unicode  unicode也称万国码
# unicode将所有语言统一到了一套编码中 因此 不会出现乱码的情况


# python3中 字符串统一使用unicode编码  默认是utf8
# utf8是unicode编码的一种格式  变长的字符编码方式 一般用1-4个字节来表示unicode字符

# GBK是在国家标准GB2312基础上扩展的产物 向下兼容GB2312标准
# GBK编码专门用来解决中文编码的，双字节表示

# 字符串的encode方法 默认是utf8的编码方式
# my_str = "abc中文"
# my_str.encode()
# my_str.encode("utf8")
# 编码和解码的方式要对应
# res = my_str.encode('gbk')
# res.decode('gbk')

# 字符串拼接、合并
# + 拼接
my_str1 = "hello"
my_str2 = "-"
my_str3 = "world"

# res = my_str1 + my_str2 + my_str3
# print(res)
# join拼接  字符串的默认方法 和split相反
#    连接符      字符串1   字符串2   字符串3   使用连接符 将 三个字符串一次连接
res = '|a|'.join([my_str1, my_str2, my_str3])

print(res)


